home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Miscellaneous Disk Images / ProDOS Basic Examples / EXTRAS / TIME.bas < prev   
Encoding:
BASIC Source File  |  1990-09-14  |  4.2 KB  |  139 lines

  1. 10 BL$ = "                                      "
  2. 20 S1$ = "***************************************"
  3. 30 S2$ = "*                                     *"
  4. 35 MO$ = "???JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
  5. 40  HOME 
  6. 50  PRINT S1$: PRINT S2$
  7. 60  PRINT "*     SYSTEM DATE AND TIME UTILITY    *"
  8. 70  PRINT S2$: PRINT S1$
  9. 80  VTAB 10
  10. 90  REM 
  11. 100  REM - READ SYSTEM DATE
  12. 110  REM 
  13. 120 DD =  PEEK(49040) - INT( PEEK(49040)/32) *32
  14. 130 YY =  INT( PEEK(49041)/2)
  15. 140 MM = ( PEEK(49041) -YY *2) *8 + INT( PEEK(49040)/32)
  16. 145 MM$ =  MID$ (MO$,MM *3 +1,3)
  17. 150  REM 
  18. 160  REM - READ SYSTEM TIME
  19. 170  REM 
  20. 180 MI =  PEEK(49042)
  21. 190 HH =  PEEK(49043)
  22. 200  REM 
  23. 210  REM - CONVERT 24 HOURS TO 12
  24. 220  REM 
  25. 230  IF HH >11  THEN PM = 1
  26. 240  IF HH >12  THEN HH = HH -12
  27. 250  IF HH = 0  THEN HH = 12
  28. 260  PRINT "       THE CURRENT SETTINGS ARE:"
  29. 270  PRINT : PRINT 
  30. 280  REM  
  31. 290  REM - PRINT DATE AND TIME  
  32. 300  REM 
  33. 310  PRINT "             DATE: ";
  34. 320  IF DD = 0  THEN  PRINT "<NO DATE>": GOTO 380
  35. 340  IF DD <10  THEN  PRINT "0";
  36. 350  PRINT DD;"-";
  37. 355  PRINT MM$;"-";
  38. 360  IF YY <10  THEN  PRINT "0";
  39. 370  PRINT YY
  40. 380  PRINT 
  41. 390  PRINT "             TIME: ";
  42. 393  IF HH = 12  AND MI = 0  AND DD = 0  THEN  PRINT "<NO TIME>": GOTO 460
  43. 400  IF HH <10  THEN  PRINT "0";
  44. 410  PRINT HH;":";
  45. 420  IF MI <10  THEN  PRINT "0";
  46. 430  PRINT MI;
  47. 440  IF PM = 1  THEN  PRINT "  PM"
  48. 450  IF PM = 0  THEN  PRINT "  AM"
  49. 460  VTAB 18
  50. 470  PRINT "    UPDATE SYSTEM DATE AND TIME? Y/N ";
  51. 480  GET A$
  52. 490  VTAB 18: HTAB 2: PRINT BL$
  53. 500  IF A$ = "N"  OR A$ = "n"  THEN  VTAB 22: END 
  54. 510  VTAB 13
  55. 520  PRINT "       ENTER DATE: DD-MMM-YY";
  56. 530  REM 
  57. 535  REM  -READ DAY INTO DD
  58. 540  REM 
  59. 545  HTAB 20: PRINT "DD";: HTAB 20
  60. 550  GET A$: IF (A$ <"0")  OR (A$ >"3") GOTO 545
  61. 555 DD =  VAL(A$): PRINT A$;
  62. 560  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 545
  63. 565 DD = DD *10 + VAL(A$): PRINT A$;
  64. 570  IF DD >31  OR DD <1 GOTO 545
  65. 572  REM 
  66. 574  REM  GET MONTH INTO M1$
  67. 576  REM 
  68. 580  HTAB 23: PRINT "MMM";: HTAB 23:COUNT = 1:M1$ = ""
  69. 585  GET A$:M1$ = M1$ +A$: PRINT A$;:MM = 4
  70. 587  IF M1$ =  MID$ (MO$,MM,COUNT)  THEN  GOTO 595
  71. 588 MM = MM +3: IF MM <39  THEN  GOTO 587
  72. 589  GOTO 580
  73. 595 COUNT = COUNT +1: IF COUNT <4  THEN  GOTO 585
  74. 600 MM = (MM -1)/3
  75. 710  REM 
  76. 720  REM -READ YEAR INTO YY
  77. 730  REM 
  78. 740  HTAB 27: PRINT "YY";: HTAB 27
  79. 750  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 740
  80. 760 YY =  VAL(A$): PRINT A$;
  81. 770  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 740
  82. 780 YY = YY *10 + VAL(A$): PRINT A$
  83. 790  REM 
  84. 800  REM -REPEAT UNTIL CORRECT
  85. 810  REM 
  86. 820  VTAB 18: PRINT "             CORRECT? Y/N ";
  87. 830  GET A$
  88. 840  VTAB 18: HTAB 2: PRINT BL$
  89. 850  IF A$ = "N"  OR A$ = "n" GOTO 510
  90. 860  VTAB 13: HTAB 8: PRINT "     ": VTAB 15: HTAB 8
  91. 870  PRINT "ENTER TIME: HH:MM  AM";
  92. 880  REM 
  93. 890  REM -READ HOUR INTO HH
  94. 900  REM 
  95. 910  HTAB 20: PRINT "HH";: HTAB 20
  96. 920  GET A$: IF (A$ <"0")  OR (A$ >"1") GOTO 910
  97. 930 HH =  VAL(A$): PRINT A$;
  98. 940  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 910
  99. 950 HH = 10 *HH + VAL(A$): PRINT A$;
  100. 960  IF HH >12  OR HH <1 GOTO 910
  101. 970  REM 
  102. 980  REM -READ MINUTE INTO MI
  103. 990  REM 
  104. 1000  HTAB 23: PRINT "MM";: HTAB 23
  105. 1010  GET A$: IF (A$ <"0")  OR (A$ >"5") GOTO 1000
  106. 1020 MI =  VAL(A$): PRINT A$;
  107. 1030  GET A$: IF (A$ <"0")  OR (A$ >"9") GOTO 1000
  108. 1040 MI = 10 *MI + VAL(A$): PRINT A$;
  109. 1050  IF MI >59 GOTO 1000
  110. 1060  REM 
  111. 1070  REM -GET AM OR PM
  112. 1080  REM 
  113. 1090  HTAB 27
  114. 1100  GET P$: IF (P$ < >"A")  AND (P$ < >"a")  AND (P$ < >"P")  AND (P$ < >"p")  AND (P$ < >" ")  AND (P$ < > CHR$(13)) GOTO 1090
  115. 1110  IF (P$ = "P")  OR (P$ = "p")  THEN  PRINT "P";
  116. 1120  REM 
  117. 1130  REM -REPEAT UNTIL CORRECT
  118. 1140  REM 
  119. 1150  VTAB 18: HTAB 2: PRINT "            CORRECT? Y/N ";
  120. 1160  GET A$
  121. 1170  VTAB 18: HTAB 2: PRINT BL$
  122. 1180  IF (A$ < >"N")  AND (A$ < >"n") GOTO 1200
  123. 1190  GOTO 860
  124. 1200  VTAB 15: HTAB 8: PRINT "     "
  125. 1210  REM 
  126. 1220  REM -UPDATE SYSTEM DATE
  127. 1230  REM 
  128. 1240  POKE 49041,YY *2 +(MM >7)
  129. 1250  IF MM >7  THEN  POKE 49040,(MM -8) *32 +DD
  130. 1260  IF MM <8  THEN  POKE 49040,MM *32 +DD
  131. 1270  REM 
  132. 1280  REM -UPDATE SYSTEM TIME (24 HOUR CLOCK)
  133. 1290  REM 
  134. 1300  IF HH = 12  THEN HH = 0
  135. 1310  IF P$ = "P"  OR P$ = "p"  THEN HH = HH +12
  136. 1320  POKE 49043,HH: POKE 49042,MI
  137. 1330  PRINT : VTAB 20: PRINT "      SYSTEM DATE AND TIME UPDATED": PRINT 
  138. 1340  PRINT "  (DOES NOT SET CLOCK/CALENDAR CARDS)"
  139. 1350  END